const path = require('path');
const fs = require('fs');


// 1、下载并引入cookie-parser中间件*************
const cookieParser = require('cookie-parser');
// ***************************************


const express = require('express');
let app=express();
app.listen(3000);

app.use(express.urlencoded({extended:true}))
app.use(express.json())



// 2、注册cookie中间件***************************
app.use(cookieParser())
// **********************




// 渲染登录页面
app.get("/login",(req,res)=>{
    let filepath=path.join(__dirname,"./views/login.html")
    res.sendFile(filepath)
})



// 提交登录数据
app.post("/login",(req,res)=>{

    
    let {username,password}= req.body
    if(!username || !password){
        res.send("请输入账号和密码")
        return
    }

    let filepath=path.join(__dirname,"./data/persons.json")
    let persons=  JSON.parse(fs.readFileSync(filepath,"utf-8"))
    let index= persons.findIndex(item=>{
        return username==item.username&&password==item.password
    })
    if(index==-1){
        res.send("用户名或密码不对")
        return
    }


    // 3、登录成功之后，把能够识别用户的信息存储在cookie上，并且发送到浏览器（然后浏览器自动去存储cookie ）
    // res.cookie(k,v [,cookie有效期]) 
    // ************************************



    // // 设置cookie 并把cookie发送到浏览器 res（响应，服务器向浏览器发送）
    res.cookie("username",username,{maxAge:20*1000})
    res.cookie("password",password)


    // for(let i=0;i<500;i++){
    //     res.cookie("user"+i,i)
    // }


    
    // ************************************

    res.send("登录成功")
})




// 访问需要权限的路由
app.get("/user",(req,res)=>{


    // 用户不能直接访问，需要验证cookie
    // console.log(req);
    let {username,password}=req.cookies
    // console.log(username);


    if(!username){
        res.send(`请先<a href="http://localhost:3000/login">登录</a>`)
        return
    }


    res.send(`<h1>欢迎${username}</h1>`)
})


